1. Field of the Invention
The present invention relates to image processing, and, in particular, to methods and apparatuses for displaying images on a computer system operating in a windowed environment.
2. Description of the Related Art
It is desirable to display images on a computer system operating in a windowed environment such as the Microsoft.RTM. Video for Windows (VfW) environment running under a Microsoft.RTM. Windows 3.X system. It is particularly desirable to display high-quality motion video on the graphics monitor of a conventional VfW-based personal computer (PC) system while minimizing the need for special-purpose hardware.
Raw digitized motion video consumes a lot of storage space. For example, a 15-frame-per-second (FPS) video sequence, at a frame size of 320 pixels by 240 pixels and with 24-bit color, consumes about 3.5 MBytes per second. As a result, for conventional PC systems, digital video is stored in a compressed format.
The amount of compression required is driven by bandwidth limitations of the storage devices used in PC systems. The only practical mass storage for motion video is CD-ROM. Access rates from single-spin CD-ROM devices is about 150 KBytes/sec. To play digital video back from CD-ROM devices, motion video is typically compressed to accommodate this access rate limitation. This compression of video data is typically performed on video data in a YUV format since compression ratios for YUV video data are typically greater than compression ratios for video data in other formats such as an RGB format.
Decompressing and displaying video is a computation intensive task. Conventional window-based PC video systems are capable of processing motion video data to combine video images with graphics for display on a display monitor. Like any system, conventional video systems have limits to their performance capabilities. It is desirable to provide an improved window-based video system that has greater performance capabilities than those of conventional video systems.
Referring now to FIG. 1, there is shown a software block diagram of a conventional video system 100 for displaying video images under the Microsoft.RTM. Video for Windows environment. In FIG. 1:
.smallcircle. Application 102 is an application program running in the VfW environment, PA1 .smallcircle. Graphic-display interface (GDI) 104 is part of Microsoft.RTM. Windows, PA1 .smallcircle. Media control interface (MCIAVI) 108 is part of Microsoft.RTM. Video for Windows, PA1 .smallcircle. Image generation subsystem (IGS) 110 is the software driver for the subsystem of video system 100 responsible for processing video image data to transform it from the format as received by the video system (e.g., compressed YUV format) to a format acceptable for the image display subsystem software 106, and PA1 .smallcircle. Image display subsystem (IDS) 106 is the software driver for the subsystem of video system 100 that handles the display of the video data processed by the IGS.
Application 102, GDI 104, MCIAVI 108, IGS 110, and IDS 106 may all reside in system memory (not shown) and be implemented by a central processing unit (CPU) (not shown). Video system 100 also includes a mass storage device (not shown) for storing compressed YUV data, IDS memory for storing display bitmap (i.e., frame buffer) data, and a display monitor (not shown) for displaying decompressed video images.
In conventional video system 100, after application 102 tells Video for Windows to open a particular video window, MCIAVI 108 defines the window in the display raster of the display monitor. MCIAVI 108 then accesses compressed YUV video data from the mass storage device and stores the compressed YUV video data to system memory. MCIAVI 108 then instructs IGS 110 to process the data for display. IGS 110 accesses the compressed YUV video data from system memory, decompresses the compressed YUV video data, and stores the decompressed YUV video data back to system memory.
Microsoft.RTM. Windows accepts video data in only RGB.sub.-- 8 or RGB.sub.-- 24 format. Microsoft.RTM. Video for Windows extends this capability by accepting video data in RGB.sub.-- 16 format. In conventional video system 100, therefore, IGS 110 accesses the decompressed YUV video data from system memory, converts the decompressed YUV video data to an RGB format that Windows supports, and stores the RGB video data back to system memory. IGS 110 then passes the RGB video data to MCIAVI 108, which passes the RGB-format video data to GDI 104 and IDS 106 for storage to IDS memory and eventual display on the display monitor.
In conventional video system 100, IGS 110 spends most of its time decompressing compressed YUV video data, converting decompressed YUV video data to the desired RGB display format, and copying the converted RGB video data to MCIAVI 108. In addition, MCIAVI 108 and GDI 104 spend time copying the image data to IDS 10G. Video system performance can be improved by accelerating the rate at which video system 100 can process video data.
Conventional video systems like video system 100 work well when the overhead required to display data is small compared with the overhead required to generate it. This is usually the case with computer graphics, where the same image components are used repeatedly. But in motion video, images can change as many as 30 times a second. The overhead associated with such image updates becomes significant, and the display architecture that was satisfactory for computer graphics becomes a motion-video bottleneck.
It is therefore desirable to accelerate video processing and thereby improve video system performance by reducing the amount of time spent by the image generation subsystem in copying converted video data to the display.
In addition, at the frame rates associated with motion video, format conversion overhead becomes significant. It is therefore desirable to accelerate video processing and thereby improve video system performance by reducing the amount of time spent by the image generation subsystem in converting decompressed video data for display.
It is accordingly an object of this invention to overcome the disadvantages and drawbacks of the known art and to provide a window-based video system with accelerated video processing and improved performance compared with conventional window-based video systems.
It is a further object of the present invention to improve video system performance by reducing the amount of time spent by the image generation subsystem in converting decompressed video data for display.
It is a further object of the present invention to improve video system performance by reducing the amount of time spent by the image generation subsystem in copying converted video data to the display.
Further objects and advantages of this invention will become apparent from the detailed description of a preferred embodiment which follows.